<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }

        html,
        body {
            height: 100%;
        }

        #app {
            height: 100%;
            position: relative;
            background-color: rgba(0, 0, 0, .5);
        }

        .shopcart {
            position: fixed;
            bottom: 0;
            background-color: white;
            width: 100%;
            padding: 10px;
            box-sizing: border-box;
        }

        .shopcart .title {
            display: flex;
            justify-content: space-between;
            font-weight: bold;
        }

        .shopcart .list {
            margin-bottom: 60px;
        }

        .shopcart .list .good {
            display: flex;
            margin: 10px 0;
        }

        .shopcart .list .good .imgbox {
            width: 80px;
            margin-right: 10px;
        }

        .shopcart .list .good .imgbox img {
            width: 100%;
        }

        .shopcart .list .good .text {
            flex: 1;
            display: flex;
            flex-direction: column;
            justify-content: space-between;
        }

        .shopcart .list .good .text .name {
            font-weight: bold;
        }

        .shopcart .list .good .text .price {
            display: flex;
            justify-content: space-between;
        }

        .shopcart .list .good .text .price span {
            display: inline-block;
            width: 14px;
            height: 14px;
            text-align: center;
            line-height: 14px;
            background-color: lightskyblue;
            color: white;
            border-radius: 50%;
        }

        .shopcart .list .good .text .price span:nth-child(2) {
            color: black;
            background-color: white;
        }

        .empty {
            text-align: center;
            padding: 50px;
        }

        .summary {
            display: flex;
            justify-content: space-between;
            align-items: center;
            background-color: #555;
            color: white;
            left: 0;
            position: fixed;
            bottom: 0;
            width: 100%;
            padding: 10px;
            box-sizing: border-box;
        }

        .summary span:nth-child(2) {
            background-color: lightgreen;
            color: white;
            padding: 5px 15px;
            border-radius: 5px;
        }
    </style>
</head>

<body>
    <div id="app">
        <div class="shopcart">
            <div class="title">
                <span>已选商品</span>
                <span @click="clean">清空</span>
            </div>

            <!-- v-if , v-else 条件渲染指令 用来控制标签的显示/隐藏, 他俩必须放置在两个兄弟标签上, 条件成立时渲染该标签, 条件不成立不渲染标签-->
            <!-- v-if 和 v-for 放在同一个标签上时, v-for的优先级更高, v-if就会失效, 需要避免这样的用法 -->
            <div v-if="list.length != 0" class="list">
                <div v-for="(item,index) in list" :key="index" class="good">
                    <div class="imgbox">
                        <img :src="item.pic" alt="">
                    </div>
                    <div class="text">
                        <div class="name">{{item.name}}</div>
                        <!-- v-html , v-text 都可以绑定数据到标签内容 和 {{}} 的作用一样 -->
                        <!-- v-html 可以解析标签 -->
                        <!-- v-text 无法解析标签 -->
                        <!-- <div class="name" v-html="item.name"></div> -->
                        <!-- <div class="name" v-text="item.name"></div> -->
                        <div class="price">
                            <div>¥{{item.price}}</div>
                            <div>
                                <span @click="sub(item)">-</span>
                                <span>{{item.count}}</span>
                                <span @click="add(item)">+</span>
                            </div>
                        </div>
                    </div>
                </div>
                <!-- v-show 通过条件控制标签的显示隐藏, 本质上是通过控制标签的css样式display 实现标签的显示/隐藏 -->
                <!-- v-show 无论条件是否成立, 标签肯定会渲染 -->
                <!-- <div class="empty" v-show="list.length == 0">购物车空空如也,去逛逛!</div> -->
            </div>
            <div v-else class="empty">购物车空空如也,去逛逛!</div>

            <div class="summary">
                <span>总数:{{totalCount}} 总价:{{totalPrice}} </span>
                <span>去结算</span>
            </div>
        </div>
    </div>

    

</body>
</html>
<script src="./vue-2.5.21.js"></script>
<script src="./02-计算属性.js"></script>